#include<iostream>
#include<cstring>
using namespace std;
int vs[1001],w[1001],dp[1001];
int main(){
    int n,v;
    cin>>n>>v;
    for(int i=1;i<=n;i++)
        cin>>vs[i]>>w[i];
    memset(dp,-0x3f,sizeof(dp));
    dp[0]=0;
    for(int i=1;i<=n;i++)
        for(int j=v;j>=vs[i];j--)
            dp[j]=max(dp[j],dp[j-vs[i]]+w[i]);
    if(dp[v]>0)cout<<"满载时可以装下物品的最大价值为："<<dp[v]<<endl;
    else cout<<"背包无法恰好装满"<<endl;
    return 0;
}